/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package feuerwehr;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import javax.swing.AbstractButton;
import javax.swing.DefaultListModel;
import javax.swing.InputVerifier;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

/**
 *
 * @author GundlaPe
 */
public class AnzeigeEinsatz extends javax.swing.JFrame {

    /**
     * Creates new form AnzeigeAll
     */
    public AnzeigeEinsatz() {
        UIManager.put("CheckBox.disabledText", color);
        UIManager.put("ComboBox.disabledForeground", color);
        UIManager.put("Label.disabledForeground", color);
        initComponents();

        /*
            Das JTabPanel Kräfte soll erstmal deaktiviert sein. Anforderung J.E. 11.11.2013
        */
        jTabPanel.remove(jtpKraefte);
        jTabPanel.remove(jpKarteHTML);
        
        setTitle(Feuerwehr.STR_VERSION+ " *** Eingabe ***");
        jlKraefteEingesetzt.addListSelectionListener(listenerKraefteEingesetzt);
        limitJTextFields();
        setInitialValues();
    }

    /**
     * Für den übergebenen Parameter PK den Einsatz darstellen (Aufgerufen aus EinsatzTabelle (ListSelectionListener)).
     * Falls der Button "save" aktiv ist wird NICHT gewechselt, weil der Satz in Bearbeitung ist.
     * @param i Der EinsatzPK
     */
    public void updateAnzeigeEinsatz(int i) {
        if (jbSave.isEnabled() == true) {
            return;
        }
        einsatzPK=i;
        einsatz = Einsatz.getEinsatz(einsatzPK);
        setInitialValues();        
        setJButton();
        enableFelder(false);
    }
    
    public void setEinsatzTabelle(EinsatzTabelle einsatzTabelle) {
        this.einsatzTabelle = einsatzTabelle;
    }
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabPanel = new javax.swing.JTabbedPane();
        jtpAllgemein = new javax.swing.JPanel();
        jpAllgemein = new javax.swing.JPanel();
        jtfEinsatznr = new javax.swing.JTextField();
        jtfBeginn = new javax.swing.JTextField();
        jtfEnde = new javax.swing.JTextField();
        jtfEinsatzstr = new javax.swing.JTextField();
        jtfEinsatzplz = new javax.swing.JTextField();
        jtfEinsatzort = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jtaGeschaedigter = new javax.swing.JTextArea();
        jLabel4 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jcbStichwort = new javax.swing.JComboBox();
        jLabel21 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel22 = new javax.swing.JLabel();
        jtfErreichbarkeit = new javax.swing.JTextField();
        jpEinsatzart = new javax.swing.JPanel();
        jcbEinsatzart1 = new javax.swing.JCheckBox();
        jcbEinsatzart2 = new javax.swing.JCheckBox();
        jcbEinsatzart3 = new javax.swing.JCheckBox();
        jcbEinsatzart4 = new javax.swing.JCheckBox();
        jcbEinsatzart5 = new javax.swing.JCheckBox();
        jcbEinsatzart6 = new javax.swing.JCheckBox();
        jScrollPane2 = new javax.swing.JScrollPane();
        jtfMeldender = new javax.swing.JTextArea();
        jtfEinsatzleiter = new javax.swing.JTextField();
        jLabel23 = new javax.swing.JLabel();
        jtpAlarmierung = new javax.swing.JPanel();
        jpAlarmierung = new javax.swing.JPanel();
        jcbAlarm1 = new javax.swing.JCheckBox();
        jcbAlarm2 = new javax.swing.JCheckBox();
        jcbAlarm3 = new javax.swing.JCheckBox();
        jcbAlarm4 = new javax.swing.JCheckBox();
        jcbAlarm5 = new javax.swing.JCheckBox();
        jcbAlarm6 = new javax.swing.JCheckBox();
        jtpFahrzeuge = new javax.swing.JPanel();
        jspFahrzeuge = new javax.swing.JScrollPane();
        jpFahrzeuge = new javax.swing.JPanel();
        jLabelA = new javax.swing.JLabel();
        jLabelB = new javax.swing.JLabel();
        jLabelC = new javax.swing.JLabel();
        jcbFahrzeug1 = new javax.swing.JCheckBox();
        jtfFahrzeugAus1 = new javax.swing.JTextField();
        jtfFahrzeugEin1 = new javax.swing.JTextField();
        jcbFahrzeug2 = new javax.swing.JCheckBox();
        jtfFahrzeugAus2 = new javax.swing.JTextField();
        jtfFahrzeugEin2 = new javax.swing.JTextField();
        jcbFahrzeug3 = new javax.swing.JCheckBox();
        jtfFahrzeugAus3 = new javax.swing.JTextField();
        jtfFahrzeugEin3 = new javax.swing.JTextField();
        jcbFahrzeug4 = new javax.swing.JCheckBox();
        jtfFahrzeugAus4 = new javax.swing.JTextField();
        jtfFahrzeugEin4 = new javax.swing.JTextField();
        jcbFahrzeug5 = new javax.swing.JCheckBox();
        jtfFahrzeugAus5 = new javax.swing.JTextField();
        jtfFahrzeugEin5 = new javax.swing.JTextField();
        jcbFahrzeug6 = new javax.swing.JCheckBox();
        jtfFahrzeugAus6 = new javax.swing.JTextField();
        jtfFahrzeugEin6 = new javax.swing.JTextField();
        jcbFahrzeug7 = new javax.swing.JCheckBox();
        jtfFahrzeugAus7 = new javax.swing.JTextField();
        jtfFahrzeugEin7 = new javax.swing.JTextField();
        jcbFahrzeug8 = new javax.swing.JCheckBox();
        jtfFahrzeugAus8 = new javax.swing.JTextField();
        jtfFahrzeugEin8 = new javax.swing.JTextField();
        jcbFahrzeug9 = new javax.swing.JCheckBox();
        jtfFahrzeugAus9 = new javax.swing.JTextField();
        jtfFahrzeugEin9 = new javax.swing.JTextField();
        jcbFahrzeug10 = new javax.swing.JCheckBox();
        jtfFahrzeugAus10 = new javax.swing.JTextField();
        jtfFahrzeugEin10 = new javax.swing.JTextField();
        jcbFahrzeug11 = new javax.swing.JCheckBox();
        jtfFahrzeugAus11 = new javax.swing.JTextField();
        jtfFahrzeugEin11 = new javax.swing.JTextField();
        jcbFahrzeug12 = new javax.swing.JCheckBox();
        jtfFahrzeugAus12 = new javax.swing.JTextField();
        jtfFahrzeugEin12 = new javax.swing.JTextField();
        jcbFahrzeug13 = new javax.swing.JCheckBox();
        jtfFahrzeugAus13 = new javax.swing.JTextField();
        jtfFahrzeugEin13 = new javax.swing.JTextField();
        jcbFahrzeug14 = new javax.swing.JCheckBox();
        jtfFahrzeugAus14 = new javax.swing.JTextField();
        jtfFahrzeugEin14 = new javax.swing.JTextField();
        jcbFahrzeug15 = new javax.swing.JCheckBox();
        jtfFahrzeugAus15 = new javax.swing.JTextField();
        jtfFahrzeugEin15 = new javax.swing.JTextField();
        jcbFahrzeug16 = new javax.swing.JCheckBox();
        jtfFahrzeugAus16 = new javax.swing.JTextField();
        jtfFahrzeugEin16 = new javax.swing.JTextField();
        jcbFahrzeug17 = new javax.swing.JCheckBox();
        jtfFahrzeugAus17 = new javax.swing.JTextField();
        jtfFahrzeugEin17 = new javax.swing.JTextField();
        jcbFahrzeug18 = new javax.swing.JCheckBox();
        jtfFahrzeugAus18 = new javax.swing.JTextField();
        jtfFahrzeugEin18 = new javax.swing.JTextField();
        jcbFahrzeug19 = new javax.swing.JCheckBox();
        jtfFahrzeugAus19 = new javax.swing.JTextField();
        jtfFahrzeugEin19 = new javax.swing.JTextField();
        jcbFahrzeug20 = new javax.swing.JCheckBox();
        jtfFahrzeugAus20 = new javax.swing.JTextField();
        jtfFahrzeugEin20 = new javax.swing.JTextField();
        jcbFahrzeug21 = new javax.swing.JCheckBox();
        jtfFahrzeugAus21 = new javax.swing.JTextField();
        jtfFahrzeugEin21 = new javax.swing.JTextField();
        jcbFahrzeug22 = new javax.swing.JCheckBox();
        jtfFahrzeugAus22 = new javax.swing.JTextField();
        jtfFahrzeugEin22 = new javax.swing.JTextField();
        jcbFahrzeug23 = new javax.swing.JCheckBox();
        jtfFahrzeugAus23 = new javax.swing.JTextField();
        jtfFahrzeugEin23 = new javax.swing.JTextField();
        jcbFahrzeug24 = new javax.swing.JCheckBox();
        jtfFahrzeugAus24 = new javax.swing.JTextField();
        jtfFahrzeugEin24 = new javax.swing.JTextField();
        jcbFahrzeug25 = new javax.swing.JCheckBox();
        jtfFahrzeugAus25 = new javax.swing.JTextField();
        jtfFahrzeugEin25 = new javax.swing.JTextField();
        jcbFahrzeug26 = new javax.swing.JCheckBox();
        jtfFahrzeugAus26 = new javax.swing.JTextField();
        jtfFahrzeugEin26 = new javax.swing.JTextField();
        jcbFahrzeug27 = new javax.swing.JCheckBox();
        jtfFahrzeugAus27 = new javax.swing.JTextField();
        jtfFahrzeugEin27 = new javax.swing.JTextField();
        jcbFahrzeug28 = new javax.swing.JCheckBox();
        jtfFahrzeugAus28 = new javax.swing.JTextField();
        jtfFahrzeugEin28 = new javax.swing.JTextField();
        jcbFahrzeug29 = new javax.swing.JCheckBox();
        jtfFahrzeugAus29 = new javax.swing.JTextField();
        jtfFahrzeugEin29 = new javax.swing.JTextField();
        jcbFahrzeug30 = new javax.swing.JCheckBox();
        jtfFahrzeugAus30 = new javax.swing.JTextField();
        jtfFahrzeugEin30 = new javax.swing.JTextField();
        jcbFahrzeug31 = new javax.swing.JCheckBox();
        jtfFahrzeugAus31 = new javax.swing.JTextField();
        jtfFahrzeugEin31 = new javax.swing.JTextField();
        jcbFahrzeug32 = new javax.swing.JCheckBox();
        jtfFahrzeugAus32 = new javax.swing.JTextField();
        jtfFahrzeugEin32 = new javax.swing.JTextField();
        jcbFahrzeug33 = new javax.swing.JCheckBox();
        jtfFahrzeugAus33 = new javax.swing.JTextField();
        jtfFahrzeugEin33 = new javax.swing.JTextField();
        jtpKraefte = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jlKraefteFrei = new javax.swing.JList(new DefaultListModel());
        jScrollPane4 = new javax.swing.JScrollPane();
        jlKraefteEingesetzt = new javax.swing.JList(new DefaultListModel());
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jbAddEingesetzt = new javax.swing.JButton();
        jbDelEingesetzt = new javax.swing.JButton();
        jScrollPane5 = new javax.swing.JScrollPane();
        jlKraefteBereit = new javax.swing.JList(new DefaultListModel());
        jLabel14 = new javax.swing.JLabel();
        jbAddBereitgestellt = new javax.swing.JButton();
        jbDelBereitgestellt = new javax.swing.JButton();
        jScrollPane6 = new javax.swing.JScrollPane();
        jlKraefteLeitend = new javax.swing.JList(new DefaultListModel());
        jLabel15 = new javax.swing.JLabel();
        jbAddLeitend = new javax.swing.JButton();
        jbDelLeitend = new javax.swing.JButton();
        jtfAGT = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        jlPerson = new javax.swing.JLabel();
        jpKosten = new javax.swing.JPanel();
        jLabel16 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jcbKostenpfltg = new javax.swing.JCheckBox();
        jtfGerettet = new javax.swing.JTextField();
        jtfGeborgen = new javax.swing.JTextField();
        jtfHoehe = new javax.swing.JTextField();
        jtfHoeheGerettet = new javax.swing.JTextField();
        jpDetail = new javax.swing.JPanel();
        jScrollPane8 = new javax.swing.JScrollPane();
        jtaDetail = new javax.swing.JTextArea();
        jScrollPane9 = new javax.swing.JScrollPane();
        jtaDetailAlle = new javax.swing.JTextArea();
        jbDetailNeu = new javax.swing.JButton();
        jpKarte = new javax.swing.JPanel();
        jlKarte = new javax.swing.JLabel();
        jpKarteHTML = new javax.swing.JPanel();
        jScrollPane7 = new javax.swing.JScrollPane();
        jedKarteHTML = new javax.swing.JEditorPane();
        jpButtons = new javax.swing.JPanel();
        jbNew = new javax.swing.JButton();
        jbChange = new javax.swing.JButton();
        jbSave = new javax.swing.JButton();
        jbDiscard = new javax.swing.JButton();
        jbPrint = new javax.swing.JButton();
        jbOverride = new javax.swing.JButton();
        jlBearbeitung = new javax.swing.JLabel();
        jlBearbeiter = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Feuerwehr V0.1");

        jTabPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
        jTabPanel.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
        jTabPanel.setName(""); // NOI18N

        jtaGeschaedigter.setColumns(20);
        jtaGeschaedigter.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
        jtaGeschaedigter.setRows(5);
        jScrollPane1.setViewportView(jtaGeschaedigter);

        jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel4.setLabelFor(jtfEnde);
        jLabel4.setText("Einsatzende:");

        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel6.setLabelFor(jtfEinsatzstr);
        jLabel6.setText("Strasse:");

        jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel7.setLabelFor(jtfEinsatzplz);
        jLabel7.setText("PLZ:");

        jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel8.setLabelFor(jtfEinsatzort);
        jLabel8.setText("Ort:");

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel1.setLabelFor(jtfEinsatznr);
        jLabel1.setText("Einsatz-/Auftragsnummer:");

        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel3.setLabelFor(jtfBeginn);
        jLabel3.setText("Einsatzbeginn:");

        jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel11.setLabelFor(jtaGeschaedigter);
        jLabel11.setText("Geschädigter:");

        jLabel21.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel21.setLabelFor(jcbStichwort);
        jLabel21.setText("Stichwort:");

        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel2.setLabelFor(jtfMeldender);
        jLabel2.setText("Meldender:");

        jLabel22.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel22.setLabelFor(jtfErreichbarkeit);
        jLabel22.setText("Erreichbarkeit:");

        jpEinsatzart.setBorder(javax.swing.BorderFactory.createTitledBorder("Einsatzart"));
        jpEinsatzart.setLayout(new java.awt.GridLayout(6, 0));
        jpEinsatzart.add(jcbEinsatzart1);
        jpEinsatzart.add(jcbEinsatzart2);
        jpEinsatzart.add(jcbEinsatzart3);
        jpEinsatzart.add(jcbEinsatzart4);
        jpEinsatzart.add(jcbEinsatzart5);
        jpEinsatzart.add(jcbEinsatzart6);

        jtfMeldender.setColumns(20);
        jtfMeldender.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
        jtfMeldender.setRows(5);
        jScrollPane2.setViewportView(jtfMeldender);

        jLabel23.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel23.setLabelFor(jtfEinsatzleiter);
        jLabel23.setText("Einsatzleiter:");

        javax.swing.GroupLayout jpAllgemeinLayout = new javax.swing.GroupLayout(jpAllgemein);
        jpAllgemein.setLayout(jpAllgemeinLayout);
        jpAllgemeinLayout.setHorizontalGroup(
            jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAllgemeinLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jpAllgemeinLayout.createSequentialGroup()
                                    .addGap(10, 10, 10)
                                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                            .addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jtfBeginn)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
                            .addComponent(jtfErreichbarkeit)
                            .addComponent(jcbStichwort, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jtfEinsatznr))
                        .addGap(14, 14, 14)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jpEinsatzart, javax.swing.GroupLayout.PREFERRED_SIZE, 265, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jtfEinsatzstr, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jtfEinsatzplz, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jtfEinsatzort, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 272, Short.MAX_VALUE)
                    .addComponent(jtfEnde)
                    .addComponent(jtfEinsatzleiter))
                .addGap(25, 25, 25))
        );
        jpAllgemeinLayout.setVerticalGroup(
            jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAllgemeinLayout.createSequentialGroup()
                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGap(51, 51, 51)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jtfEnde, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGap(51, 51, 51)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jtfBeginn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel3)))
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGap(24, 24, 24)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jtfEinsatznr, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                                .addComponent(jtfEinsatzstr)
                                .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jpAllgemeinLayout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jtfEinsatzplz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jtfEinsatzort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpAllgemeinLayout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel22))))
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtfErreichbarkeit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpAllgemeinLayout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jtfEinsatzleiter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel23))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel11)
                        .addComponent(jcbStichwort)
                        .addComponent(jLabel21))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpAllgemeinLayout.createSequentialGroup()
                        .addGap(29, 173, Short.MAX_VALUE)
                        .addComponent(jpEinsatzart, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );

        javax.swing.GroupLayout jtpAllgemeinLayout = new javax.swing.GroupLayout(jtpAllgemein);
        jtpAllgemein.setLayout(jtpAllgemeinLayout);
        jtpAllgemeinLayout.setHorizontalGroup(
            jtpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpAllgemeinLayout.createSequentialGroup()
                .addComponent(jpAllgemein, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jtpAllgemeinLayout.setVerticalGroup(
            jtpAllgemeinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpAllgemeinLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpAllgemein, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap(180, Short.MAX_VALUE))
        );

        jTabPanel.addTab("Allgemeines", jtpAllgemein);

        jpAlarmierung.setBorder(javax.swing.BorderFactory.createTitledBorder("Alarmierung"));
        jpAlarmierung.setLayout(new java.awt.GridLayout(6, 0, 0, 2));
        jpAlarmierung.add(jcbAlarm1);
        jpAlarmierung.add(jcbAlarm2);
        jpAlarmierung.add(jcbAlarm3);
        jpAlarmierung.add(jcbAlarm4);
        jpAlarmierung.add(jcbAlarm5);
        jpAlarmierung.add(jcbAlarm6);

        javax.swing.GroupLayout jtpAlarmierungLayout = new javax.swing.GroupLayout(jtpAlarmierung);
        jtpAlarmierung.setLayout(jtpAlarmierungLayout);
        jtpAlarmierungLayout.setHorizontalGroup(
            jtpAlarmierungLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpAlarmierungLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpAlarmierung, javax.swing.GroupLayout.DEFAULT_SIZE, 647, Short.MAX_VALUE)
                .addContainerGap(256, Short.MAX_VALUE))
        );
        jtpAlarmierungLayout.setVerticalGroup(
            jtpAlarmierungLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpAlarmierungLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpAlarmierung, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap(542, Short.MAX_VALUE))
        );

        jTabPanel.addTab("Alarmierung", jtpAlarmierung);

        jtpFahrzeuge.setLayout(new java.awt.BorderLayout());

        jpFahrzeuge.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
        jpFahrzeuge.setLayout(new java.awt.GridLayout(34, 3, 4, 1));

        jLabelA.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabelA.setText("Fahrzeug");
        jpFahrzeuge.add(jLabelA);

        jLabelB.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelB.setText("Ausrückzeit");
        jpFahrzeuge.add(jLabelB);

        jLabelC.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelC.setText("Einrückzeit");
        jpFahrzeuge.add(jLabelC);
        jpFahrzeuge.add(jcbFahrzeug1);
        jpFahrzeuge.add(jtfFahrzeugAus1);
        jpFahrzeuge.add(jtfFahrzeugEin1);
        jpFahrzeuge.add(jcbFahrzeug2);
        jpFahrzeuge.add(jtfFahrzeugAus2);
        jpFahrzeuge.add(jtfFahrzeugEin2);
        jpFahrzeuge.add(jcbFahrzeug3);
        jpFahrzeuge.add(jtfFahrzeugAus3);
        jpFahrzeuge.add(jtfFahrzeugEin3);
        jpFahrzeuge.add(jcbFahrzeug4);
        jpFahrzeuge.add(jtfFahrzeugAus4);
        jpFahrzeuge.add(jtfFahrzeugEin4);
        jpFahrzeuge.add(jcbFahrzeug5);
        jpFahrzeuge.add(jtfFahrzeugAus5);
        jpFahrzeuge.add(jtfFahrzeugEin5);
        jpFahrzeuge.add(jcbFahrzeug6);
        jpFahrzeuge.add(jtfFahrzeugAus6);
        jpFahrzeuge.add(jtfFahrzeugEin6);
        jpFahrzeuge.add(jcbFahrzeug7);
        jpFahrzeuge.add(jtfFahrzeugAus7);
        jpFahrzeuge.add(jtfFahrzeugEin7);
        jpFahrzeuge.add(jcbFahrzeug8);
        jpFahrzeuge.add(jtfFahrzeugAus8);
        jpFahrzeuge.add(jtfFahrzeugEin8);
        jpFahrzeuge.add(jcbFahrzeug9);
        jpFahrzeuge.add(jtfFahrzeugAus9);
        jpFahrzeuge.add(jtfFahrzeugEin9);
        jpFahrzeuge.add(jcbFahrzeug10);
        jpFahrzeuge.add(jtfFahrzeugAus10);
        jpFahrzeuge.add(jtfFahrzeugEin10);
        jpFahrzeuge.add(jcbFahrzeug11);
        jpFahrzeuge.add(jtfFahrzeugAus11);
        jpFahrzeuge.add(jtfFahrzeugEin11);
        jpFahrzeuge.add(jcbFahrzeug12);
        jpFahrzeuge.add(jtfFahrzeugAus12);
        jpFahrzeuge.add(jtfFahrzeugEin12);
        jpFahrzeuge.add(jcbFahrzeug13);
        jpFahrzeuge.add(jtfFahrzeugAus13);
        jpFahrzeuge.add(jtfFahrzeugEin13);
        jpFahrzeuge.add(jcbFahrzeug14);
        jpFahrzeuge.add(jtfFahrzeugAus14);
        jpFahrzeuge.add(jtfFahrzeugEin14);
        jpFahrzeuge.add(jcbFahrzeug15);
        jpFahrzeuge.add(jtfFahrzeugAus15);
        jpFahrzeuge.add(jtfFahrzeugEin15);
        jpFahrzeuge.add(jcbFahrzeug16);
        jpFahrzeuge.add(jtfFahrzeugAus16);
        jpFahrzeuge.add(jtfFahrzeugEin16);
        jpFahrzeuge.add(jcbFahrzeug17);
        jpFahrzeuge.add(jtfFahrzeugAus17);
        jpFahrzeuge.add(jtfFahrzeugEin17);
        jpFahrzeuge.add(jcbFahrzeug18);
        jpFahrzeuge.add(jtfFahrzeugAus18);
        jpFahrzeuge.add(jtfFahrzeugEin18);
        jpFahrzeuge.add(jcbFahrzeug19);
        jpFahrzeuge.add(jtfFahrzeugAus19);
        jpFahrzeuge.add(jtfFahrzeugEin19);
        jpFahrzeuge.add(jcbFahrzeug20);
        jpFahrzeuge.add(jtfFahrzeugAus20);
        jpFahrzeuge.add(jtfFahrzeugEin20);
        jpFahrzeuge.add(jcbFahrzeug21);
        jpFahrzeuge.add(jtfFahrzeugAus21);
        jpFahrzeuge.add(jtfFahrzeugEin21);
        jpFahrzeuge.add(jcbFahrzeug22);
        jpFahrzeuge.add(jtfFahrzeugAus22);
        jpFahrzeuge.add(jtfFahrzeugEin22);
        jpFahrzeuge.add(jcbFahrzeug23);
        jpFahrzeuge.add(jtfFahrzeugAus23);
        jpFahrzeuge.add(jtfFahrzeugEin23);
        jpFahrzeuge.add(jcbFahrzeug24);
        jpFahrzeuge.add(jtfFahrzeugAus24);
        jpFahrzeuge.add(jtfFahrzeugEin24);
        jpFahrzeuge.add(jcbFahrzeug25);
        jpFahrzeuge.add(jtfFahrzeugAus25);
        jpFahrzeuge.add(jtfFahrzeugEin25);
        jpFahrzeuge.add(jcbFahrzeug26);
        jpFahrzeuge.add(jtfFahrzeugAus26);
        jpFahrzeuge.add(jtfFahrzeugEin26);
        jpFahrzeuge.add(jcbFahrzeug27);
        jpFahrzeuge.add(jtfFahrzeugAus27);
        jpFahrzeuge.add(jtfFahrzeugEin27);
        jpFahrzeuge.add(jcbFahrzeug28);
        jpFahrzeuge.add(jtfFahrzeugAus28);
        jpFahrzeuge.add(jtfFahrzeugEin28);
        jpFahrzeuge.add(jcbFahrzeug29);
        jpFahrzeuge.add(jtfFahrzeugAus29);
        jpFahrzeuge.add(jtfFahrzeugEin29);
        jpFahrzeuge.add(jcbFahrzeug30);
        jpFahrzeuge.add(jtfFahrzeugAus30);
        jpFahrzeuge.add(jtfFahrzeugEin30);
        jpFahrzeuge.add(jcbFahrzeug31);
        jpFahrzeuge.add(jtfFahrzeugAus31);
        jpFahrzeuge.add(jtfFahrzeugEin31);
        jpFahrzeuge.add(jcbFahrzeug32);
        jpFahrzeuge.add(jtfFahrzeugAus32);
        jpFahrzeuge.add(jtfFahrzeugEin32);
        jpFahrzeuge.add(jcbFahrzeug33);
        jpFahrzeuge.add(jtfFahrzeugAus33);
        jpFahrzeuge.add(jtfFahrzeugEin33);

        jspFahrzeuge.setViewportView(jpFahrzeuge);

        jtpFahrzeuge.add(jspFahrzeuge, java.awt.BorderLayout.CENTER);

        jTabPanel.addTab("Fahrzeuge", jtpFahrzeuge);

        jScrollPane3.setViewportView(jlKraefteFrei);

        jScrollPane4.setViewportView(jlKraefteEingesetzt);

        jLabel12.setLabelFor(jlKraefteFrei);
        jLabel12.setText("Freie Kräfte:");

        jLabel13.setLabelFor(jlKraefteEingesetzt);
        jLabel13.setText("Eingesetzte Kräfte:");

        jbAddEingesetzt.setText(">>");
        jbAddEingesetzt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbAddEingesetztActionPerformed(evt);
            }
        });

        jbDelEingesetzt.setText("<<");
        jbDelEingesetzt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbDelEingesetztActionPerformed(evt);
            }
        });

        jScrollPane5.setViewportView(jlKraefteBereit);

        jLabel14.setLabelFor(jlKraefteBereit);
        jLabel14.setText("Bereitgestellte Kräfte:");

        jbAddBereitgestellt.setText(">>");
        jbAddBereitgestellt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbAddBereitgestelltActionPerformed(evt);
            }
        });

        jbDelBereitgestellt.setText("<<");
        jbDelBereitgestellt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbDelBereitgestelltActionPerformed(evt);
            }
        });

        jScrollPane6.setViewportView(jlKraefteLeitend);

        jLabel15.setLabelFor(jlKraefteLeitend);
        jLabel15.setText("Einsatzleiter:");

        jbAddLeitend.setText(">>");
        jbAddLeitend.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbAddLeitendActionPerformed(evt);
            }
        });

        jbDelLeitend.setText("<<");
        jbDelLeitend.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbDelLeitendActionPerformed(evt);
            }
        });

        jtfAGT.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtfAGTActionPerformed(evt);
            }
        });
        jtfAGT.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jtfAGTFocusLost(evt);
            }
        });

        jLabel20.setLabelFor(jtfAGT);
        jLabel20.setText("AGT (Std:min)");

        javax.swing.GroupLayout jtpKraefteLayout = new javax.swing.GroupLayout(jtpKraefte);
        jtpKraefte.setLayout(jtpKraefteLayout);
        jtpKraefteLayout.setHorizontalGroup(
            jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpKraefteLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jbAddLeitend, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jbDelLeitend, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(jLabel12, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jbDelEingesetzt)
                            .addComponent(jbAddEingesetzt)
                            .addComponent(jbAddBereitgestellt)
                            .addComponent(jbDelBereitgestellt))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 272, Short.MAX_VALUE)
                    .addComponent(jScrollPane4)
                    .addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jScrollPane6)
                    .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(38, 38, 38)
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jtfAGT, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel20)
                    .addComponent(jlPerson, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(77, Short.MAX_VALUE))
        );
        jtpKraefteLayout.setVerticalGroup(
            jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jtpKraefteLayout.createSequentialGroup()
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addGap(21, 21, 21)
                        .addComponent(jLabel12))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jtpKraefteLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel13)))
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addGap(67, 67, 67)
                        .addComponent(jbAddEingesetzt)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbDelEingesetzt))
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addGap(56, 56, 56)
                        .addComponent(jlPerson)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel20)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtfAGT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addComponent(jLabel14)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jtpKraefteLayout.createSequentialGroup()
                        .addGap(54, 54, 54)
                        .addComponent(jbAddBereitgestellt)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbDelBereitgestellt))
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jtpKraefteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jtpKraefteLayout.createSequentialGroup()
                        .addComponent(jLabel15)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(116, 116, 116))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jtpKraefteLayout.createSequentialGroup()
                        .addComponent(jbAddLeitend)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbDelLeitend)
                        .addGap(100, 100, 100))))
        );

        jTabPanel.addTab("Kräfte", jtpKraefte);

        jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel16.setLabelFor(jtfGerettet);
        jLabel16.setText("Personen gerettet:");

        jLabel19.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel19.setLabelFor(jtfHoeheGerettet);
        jLabel19.setText("Erhaltene Werte (ca.):");

        jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel18.setLabelFor(jtfHoehe);
        jLabel18.setText("Brandschadenhöhe (ca.):");

        jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel17.setLabelFor(jtfGeborgen);
        jLabel17.setText("Personen geborgen:");

        jcbKostenpfltg.setText("Kostenpflichtiger Einsatz");

        javax.swing.GroupLayout jpKostenLayout = new javax.swing.GroupLayout(jpKosten);
        jpKosten.setLayout(jpKostenLayout);
        jpKostenLayout.setHorizontalGroup(
            jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpKostenLayout.createSequentialGroup()
                .addGap(29, 29, 29)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jLabel18, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
                    .addComponent(jLabel19, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel17, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel16, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(6, 6, 6)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jcbKostenpfltg)
                    .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jtfHoehe, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 132, Short.MAX_VALUE)
                        .addComponent(jtfGeborgen, javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jtfGerettet)
                        .addComponent(jtfHoeheGerettet)))
                .addContainerGap(586, Short.MAX_VALUE))
        );
        jpKostenLayout.setVerticalGroup(
            jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpKostenLayout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addComponent(jcbKostenpfltg)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jtfGerettet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel16))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jtfGeborgen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel17))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jtfHoehe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel18))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpKostenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jtfHoeheGerettet, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19))
                .addContainerGap(556, Short.MAX_VALUE))
        );

        jTabPanel.addTab("Kosten", jpKosten);

        jtaDetail.setColumns(20);
        jtaDetail.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
        jtaDetail.setRows(5);
        jScrollPane8.setViewportView(jtaDetail);

        jtaDetailAlle.setColumns(20);
        jtaDetailAlle.setRows(5);
        jScrollPane9.setViewportView(jtaDetailAlle);

        jbDetailNeu.setText("Neues Detail");
        jbDetailNeu.setPreferredSize(new java.awt.Dimension(110, 23));
        jbDetailNeu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbDetailNeuActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jpDetailLayout = new javax.swing.GroupLayout(jpDetail);
        jpDetail.setLayout(jpDetailLayout);
        jpDetailLayout.setHorizontalGroup(
            jpDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDetailLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 893, Short.MAX_VALUE)
                    .addComponent(jScrollPane9)
                    .addGroup(jpDetailLayout.createSequentialGroup()
                        .addComponent(jbDetailNeu, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jpDetailLayout.setVerticalGroup(
            jpDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpDetailLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jbDetailNeu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 435, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabPanel.addTab("Einsatzdetails", jpDetail);

        jpKarte.setLayout(new java.awt.BorderLayout());

        jlKarte.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlKarte.setToolTipText("");
        jpKarte.add(jlKarte, java.awt.BorderLayout.CENTER);

        jTabPanel.addTab("Karte", jpKarte);

        jpKarteHTML.setLayout(new java.awt.BorderLayout());

        jScrollPane7.setViewportView(jedKarteHTML);

        jpKarteHTML.add(jScrollPane7, java.awt.BorderLayout.CENTER);

        jTabPanel.addTab("HTML-Karte", jpKarteHTML);

        getContentPane().add(jTabPanel, java.awt.BorderLayout.CENTER);
        jTabPanel.getAccessibleContext().setAccessibleName("Allgemeines");

        jbNew.setText("Neu");
        jbNew.setPreferredSize(new java.awt.Dimension(100, 23));
        jbNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbNewActionPerformed(evt);
            }
        });

        jbChange.setText("Ändern");
        jbChange.setPreferredSize(new java.awt.Dimension(100, 23));
        jbChange.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbChangeActionPerformed(evt);
            }
        });

        jbSave.setText("Speichern");
        jbSave.setPreferredSize(new java.awt.Dimension(100, 23));
        jbSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbSaveActionPerformed(evt);
            }
        });

        jbDiscard.setText("Verwerfen");
        jbDiscard.setPreferredSize(new java.awt.Dimension(100, 23));
        jbDiscard.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbDiscardActionPerformed(evt);
            }
        });

        jbPrint.setText("Print");
        jbPrint.setPreferredSize(new java.awt.Dimension(100, 23));
        jbPrint.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbPrintActionPerformed(evt);
            }
        });

        jbOverride.setText("Override");
        jbOverride.setPreferredSize(new java.awt.Dimension(100, 23));
        jbOverride.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbOverrideActionPerformed(evt);
            }
        });

        jlBearbeitung.setText("Gesperrt durch");

        jlBearbeiter.setText("Bearbeiter");

        javax.swing.GroupLayout jpButtonsLayout = new javax.swing.GroupLayout(jpButtons);
        jpButtons.setLayout(jpButtonsLayout);
        jpButtonsLayout.setHorizontalGroup(
            jpButtonsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpButtonsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpButtonsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpButtonsLayout.createSequentialGroup()
                        .addComponent(jlBearbeitung, javax.swing.GroupLayout.PREFERRED_SIZE, 438, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 122, Short.MAX_VALUE)
                        .addComponent(jlBearbeiter, javax.swing.GroupLayout.PREFERRED_SIZE, 348, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jpButtonsLayout.createSequentialGroup()
                        .addComponent(jbNew, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jbChange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbSave, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbDiscard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbPrint, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbOverride, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jpButtonsLayout.setVerticalGroup(
            jpButtonsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpButtonsLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpButtonsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlBearbeitung)
                    .addComponent(jlBearbeiter))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jpButtonsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jbNew, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbChange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbSave, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbDiscard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbPrint, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jbOverride, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(13, Short.MAX_VALUE))
        );

        getContentPane().add(jpButtons, java.awt.BorderLayout.SOUTH);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jbDelEingesetztActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbDelEingesetztActionPerformed
       switchJList(jlKraefteFrei, jlKraefteEingesetzt);
       sortJListTest(jlKraefteFrei);
    }//GEN-LAST:event_jbDelEingesetztActionPerformed

    private void jbAddEingesetztActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbAddEingesetztActionPerformed
       switchJList(jlKraefteEingesetzt, jlKraefteFrei);
       sortJListTest(jlKraefteEingesetzt);
    }//GEN-LAST:event_jbAddEingesetztActionPerformed

    private void jbDelBereitgestelltActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbDelBereitgestelltActionPerformed
       switchJList(jlKraefteFrei, jlKraefteBereit);
       sortJListTest(jlKraefteFrei);
    }//GEN-LAST:event_jbDelBereitgestelltActionPerformed

    private void jbAddBereitgestelltActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbAddBereitgestelltActionPerformed
       switchJList(jlKraefteBereit, jlKraefteFrei);
       sortJListTest(jlKraefteBereit);
    }//GEN-LAST:event_jbAddBereitgestelltActionPerformed

    private void jbAddLeitendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbAddLeitendActionPerformed
       if (switchJList(jlKraefteLeitend, jlKraefteFrei) == false)
           return;
       sortJListTest(jlKraefteLeitend);
       jbAddLeitend.setEnabled(false);
       jbDelLeitend.setEnabled(true);
    }//GEN-LAST:event_jbAddLeitendActionPerformed

    private void jbDelLeitendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbDelLeitendActionPerformed
       if (switchJList(jlKraefteFrei, jlKraefteLeitend) == false)
           return;
       sortJListTest(jlKraefteFrei);
       jbAddLeitend.setEnabled(true);
       jbDelLeitend.setEnabled(false);
    }//GEN-LAST:event_jbDelLeitendActionPerformed

    /**
     * ActionHandler für den JButton "Ändern".
     * Ein wird ein select for update auf den DS gemacht, anschliessend wird geprüft, ob das kz_bearbeitung gesetzt ist.
     * Wenn nicht setzen wir das und auch den Bearbeiter. Buttons Save / Discard werden aktiviert.
     * @param evt Wird nicht genutzt
     */
    private void jbChangeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbChangeActionPerformed
        if (Einsatz.lockEinsatz(einsatzPK) == false) {
            JOptionPane.showMessageDialog(this, "Der Datensatz wurde bereits gesperrt!", Feuerwehr.STR_VERSION, JOptionPane.WARNING_MESSAGE);
            einsatz = Einsatz.getEinsatz(einsatzPK);        // Reload der Daten
            setInitialValues();        
            return;
        }
        jbNew.setEnabled(true);
        jbChange.setEnabled(false);
        jbPrint.setEnabled(false);
        jbSave.setEnabled(true);
        jbDiscard.setEnabled(true);
        jbDetailNeu.setEnabled(true);
        enableFelder(true);
    }//GEN-LAST:event_jbChangeActionPerformed

    /**
     * ActionHandler für den JButton "Neu".
     * Es wird ein leerer Datensatz erzeugt und anschliessend angezeigt.
     * @param evt Wird nicht genutzt
     */
    private void jbNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbNewActionPerformed
        einsatzPK = Einsatz.createEinsatz();
        einsatz = Einsatz.getEinsatz(einsatzPK);
        setInitialValues();
        jtfHoehe.setText("0");
        jtfHoeheGerettet.setText("0");
        jtfBeginn.setText(new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(new Date()));
        jbNew.setEnabled(false);
        jbChange.setEnabled(false);
        jbPrint.setEnabled(false);
        jbSave.setEnabled(true);
        jbDiscard.setEnabled(true);
        jbDetailNeu.setEnabled(true);
        enableFelder(true);
        bEinsatzIstNeu = true;
    }//GEN-LAST:event_jbNewActionPerformed

    /**
     * ActionHandler für JButton "Save". 
     * Alle Änderungen des aktuellen Datensatzes werden geschrieben und kz_bearbeitung auf 'N' gesetzt.
     * Bei einer Änderung der Addresse wird Lat/Lon für die Karte neu berechnet (mit Hinweis darauf)
     * @param evt Wird nicht genutzt 
     */
    private void jbSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbSaveActionPerformed
        String[] s = {"", ""};
        if (!((jtfEinsatzstr.getText().equals(einsatz.getEinsatzStr())) && (jtfEinsatzplz.getText().equals(einsatz.getEinsatzPLZ())) && (jtfEinsatzort.getText().equals(einsatz.getEinsatzOrt())))) {
            JOptionPane.showMessageDialog(this, "Koordinaten müssen berechnet werden!", Feuerwehr.STR_VERSION, JOptionPane.INFORMATION_MESSAGE);
            s=Kartendienst.getLatLon(jtfEinsatzstr.getText(), jtfEinsatzplz.getText(), jtfEinsatzort.getText());
            //System.err.println("DEBUG>> Ortaenderung: " + s[0] + " / " + s[1] + " in " + jtfEinsatzstr.getText() + ", " + jtfEinsatzplz.getText() + " " + jtfEinsatzort.getText());
        } else {
            s[0]=einsatz.getLongitude();
            s[1]=einsatz.getLatitude();
        }

        if (true == Einsatz.writeEinsatz(einsatzPK, jtfEinsatznr.getText(), jtfMeldender.getText(), jtfErreichbarkeit.getText(), jtfBeginn.getText(), jtfEnde.getText(), jtfEinsatzstr.getText(),
                jtfEinsatzplz.getText(), jtfEinsatzort.getText(), jtaGeschaedigter.getText(), jcbKostenpfltg.isSelected()==true?"J":"N", jtfGerettet.getText(), jtfGeborgen.getText(),
                jtfHoehe.getText(), jtfHoeheGerettet.getText(), getListFromJList(jlKraefteEingesetzt), getListFromJList(jlKraefteBereit), getListFromJList(jlKraefteLeitend),
                getAlarmierung(), getEinsatzart(), jcbFahrzeug, jtfFahrzeugAus, jtfFahrzeugEin, getStichwort(), detail, s[0], s[1], jtfEinsatzleiter.getText())) {
            // Einsatz neu laden???
            Einsatz.releaseEinsatz(einsatzPK);
            einsatz = Einsatz.getEinsatz(einsatzPK);
            setInitialValues();    
            setJButton();
            bEinsatzIstNeu = false;
            enableFelder(false);
            if (einsatzTabelle != null)
                einsatzTabelle.refreshAnzeige();
        } else {
        }
    }//GEN-LAST:event_jbSaveActionPerformed

    /**
     * Enter auf AGT Feld überträgt den Wert in Person.
     * @param evt Nicht benutzt 
     */
    private void jtfAGTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtfAGTActionPerformed
        updateAGTFeld();
    }//GEN-LAST:event_jtfAGTActionPerformed

    /**
     * Alle Änderungen wegschmeissen.
     * @param evt Nicht benutzt 
     */
    private void jbDiscardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbDiscardActionPerformed
        if (bEinsatzIstNeu == true) {
            Einsatz.deleteEinsatz(einsatzPK);
            einsatzPK = -1;         // TEST TEST TEST
            einsatz = Einsatz.getEinsatz(einsatzPK);
        } else {
            Einsatz.releaseEinsatz(einsatzPK);
            einsatz = Einsatz.getEinsatz(einsatzPK);
        }
        bEinsatzIstNeu = false;
        setInitialValues();        
        setJButton();
        enableFelder(false);
    }//GEN-LAST:event_jbDiscardActionPerformed

    /**
     * FocusLost auf AGT Feld überträgt den Wert in Person.
     * @param evt Nicht benutzt 
     */
    private void jtfAGTFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jtfAGTFocusLost
        updateAGTFeld();
    }//GEN-LAST:event_jtfAGTFocusLost

    /**
     * Einen Lock auf einen Datensatz aufheben!!!
     * @param evt Nicht benutzt
     */
    private void jbOverrideActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbOverrideActionPerformed
        int n = JOptionPane.showConfirmDialog(this, "Soll der Datensatz freigegeben werden?", Feuerwehr.STR_VERSION, JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
            jbDiscardActionPerformed(evt);
        }
    }//GEN-LAST:event_jbOverrideActionPerformed

    /**
     * Den aktuellen Einsatz in einer Depesche drucken.
     * @param evt Nicht benutzt
     */
    private void jbPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbPrintActionPerformed
        PrintEinsatzDepesche.createFile(einsatz);
    }//GEN-LAST:event_jbPrintActionPerformed

    /**
     * Ein neuer Detaildatensatz wurde angefordert.
     * @param evt Nicht benutzt
     */
    private void jbDetailNeuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbDetailNeuActionPerformed
        detail = new Detail(-1, "", new Timestamp((new Date()).getTime()), Feuerwehr.getBenutzer());
        jtaDetail.setEnabled(true);
        jtaDetail.requestFocus();
        jbDetailNeu.setEnabled(false);
    }//GEN-LAST:event_jbDetailNeuActionPerformed

    /**
     * Werte aus jtfAGT werden in Person übertragen.
     */
    private void updateAGTFeld() {
        Person p = (Person) jlKraefteEingesetzt.getSelectedValue();
        if (p == null) {
            return;
        }
        System.err.println("Update AGT mit " + jtfAGT.getText());
        p.setAGT(jtfAGT.getText());
    }

    /**
     * Beim Updaten von JTextArea (Detail) wird der Detailsatz geschrieben.
     * Ausnahme ist wenn die Änderung vom ListSelectionListener kommt.
     */
    private void updateDetailFeld() {
        detail.setDetail(jtaDetail.getText());

    }
    
    /**
     * Aus einer JList eine Liste mit Personen erzeugen.
     * @param Eine JList
     * @return  List Eine Liste der Personen
     */
    private List<Person> getListFromJList(JList jl) {
        ArrayList<Person> al = new ArrayList();
        DefaultListModel dlm = (DefaultListModel) jl.getModel();
        for(Enumeration<Person> e = dlm.elements(); e.hasMoreElements();) {
            al.add(e.nextElement());
        } 
        return al;
    }
    
    /**
     * Aus einer JList eine Liste mit Details erzeugen.
     * @param Eine JList
     * @return  List Eine Liste der Personen
     */
    private List<Detail> getDetailListFromJList(JList jl) {
        ArrayList<Detail> al = new ArrayList();
        DefaultListModel dlm = (DefaultListModel) jl.getModel();
        for(Enumeration<Detail> e = dlm.elements(); e.hasMoreElements();) {
            al.add(e.nextElement());
        } 
        return al;
    }

    /**
     * Daten aus einer JList die selektiert sind werden in eine andere JList geschrieben und aus der aufrufenden gelöscht.
     * @param jlistAdd Die JList in welche hinzugefügt wird
     * @param jlistDel Die JList aus welcher die Daten kommen
     * @return War das ganze von Erfolg gekrönt (Wichtig für Single JList Kräfte)
     */
    private boolean switchJList(JList jlistAdd, JList jlistDel) {
       List <Person> al = jlistDel.getSelectedValuesList();
       if ((al == null) || (al.isEmpty())) {
           return false;
       }
       if ((jlistAdd == jlKraefteLeitend) && (al.size() > 1)) {
           return false;
       }
       DefaultListModel dlm = (DefaultListModel) jlistAdd.getModel();   // Einmal die Personen hinzufügen
       for (Person p : al) {
           dlm.addElement(p);
       }
       
       dlm = (DefaultListModel) jlistDel.getModel();                    // Entfernen der Einträge in umgekehrter Reihenfolge!
       int[] i = jlistDel.getSelectedIndices();
       for (int index = i.length - 1; index>=0; index--) {
           dlm.remove(i[index]);
       }
       return true;
    }

    /**
     * Füllen einer JList mit Daten aus einem Array für Personen, vorher wird es geleert.
     * @param jl Die JList
     * @param al Die ArrayList
     */
    private void fillJListPerson(JList jl, ArrayList<Person> al) {
        DefaultListModel dlm = (DefaultListModel) jl.getModel();
        dlm.clear();
        for (Person p : al) {
            dlm.addElement(p);
        }
    }
    
    /**
     * Sortieren einer JList, alle Daten werden gerettet, sortiert, die JList gelöscht und wieder befüllt.
     * @param jl Die JList
     */
    private void sortJListTest(JList jl) {
        ArrayList<Person> al = new ArrayList();
        DefaultListModel dlm = (DefaultListModel) jl.getModel();
        for(Enumeration<Person> e = dlm.elements(); e.hasMoreElements();) {
            al.add(e.nextElement());
        } 
        dlm.clear();
        Collections.sort(al);
        fillJListPerson(jl, al);
    }

    /**
     * Füllen einer JList mit Daten aus einem Array für Details, vorher wird es geleert.
     * @param al Die ArrayList
     */
    private void fillJTextAreaDetail(List<Detail> al) {
        String s = "";
        jtaDetailAlle.setText("");
        for (Detail d : al) {
            s = s + d.getDatum() + "  " + d.getPerson().getName() + "\r\n";
            s = s + d.getDetail() + "\r\n" + "\r\n";
        }
        jtaDetailAlle.setText(s);
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(AnzeigeEinsatz.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(AnzeigeEinsatz.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(AnzeigeEinsatz.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(AnzeigeEinsatz.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new AnzeigeEinsatz().setVisible(true);
            }
        });
    }

    /**
     * Startwerte der Felder setzen, d.h. erst einmal alles leeren und danach mit Werten füllen.
     */
    private void setInitialValues() {
        initializeFelder();
        initializeAlarmierung();
        initializeFahrzeug();
        initializeEinsatzart();
        initializeStichwort();
        jlBearbeiter.setText("Aktueller Benutzer: " + Feuerwehr.getBenutzer().getName());
        if (einsatz == null) {
            setJButton();
            enableFelder(false);
            return;
        }
        jtfEinsatznr.setText(einsatz.getEinsatznr());
        jtfMeldender.setText(einsatz.getMeldender());
        jtfErreichbarkeit.setText(einsatz.getErreichbar());  
        jtfBeginn.setText(einsatz.getBeginn());
        jtfEnde.setText(einsatz.getEnde());
        jtaGeschaedigter.setText(einsatz.getGeschaedigt());
        jtfEinsatzort.setText(einsatz.getEinsatzOrt());
        jtfEinsatzstr.setText(einsatz.getEinsatzStr());
        jtfEinsatzplz.setText(einsatz.getEinsatzPLZ());
        jtfGeborgen.setText(einsatz.getPers_geborgen());
        jtfGerettet.setText(einsatz.getPers_gerettet());
        jtfHoehe.setText(einsatz.getSchaden_hoehe());
        jtfHoeheGerettet.setText(einsatz.getSchaden_gerettet());
        jtfEinsatzleiter.setText(einsatz.getEinsatzleiter());
        if (einsatz.getKostenpfltg().equals("J")) {
            jcbKostenpfltg.setSelected(true);
        } else {
            jcbKostenpfltg.setSelected(false);
        }      
        kz_bearbeitung = einsatz.getKz_bearbeitung();
        bearbeiter = einsatz.getBearbeiter();
        
        fillJListPerson(jlKraefteFrei, einsatz.getKraefteFrei());
        fillJListPerson(jlKraefteEingesetzt, einsatz.getKraefteEingesetzt());
        fillJListPerson(jlKraefteBereit, einsatz.getKraefteBereit());
        fillJListPerson(jlKraefteLeitend, einsatz.getKraefteLeitend());
        fillJTextAreaDetail(einsatz.getDetail());
        
        if ((einsatz.getKraefteLeitend().isEmpty() == true) || (einsatz.getKraefteLeitend() == null)) {
            jbDelLeitend.setEnabled(false);
            jbAddLeitend.setEnabled(true);
        } else {
            jbDelLeitend.setEnabled(true);
            jbAddLeitend.setEnabled(false);
        }
        setAlarmierung();
        setFahrzeug();
        setEinsatzart();
        setStichwort();
        setJButton();
        
        if (!(einsatz.getLatitude().equals("") && einsatz.getLongitude().equals(""))) {
            Kartendienst.kartenDienst(jlKarte, einsatz.getLatitude(), einsatz.getLongitude());
            // jedKarteHTML.setContentType("text/html");
            // Kartendienst.kartenDienstHTML(jedKarteHTML, einsatz.getLatitude(), einsatz.getLongitude());
        }
        enableFelder(false);
    }

    /**
     * Die Felder enablen oder disablen
     * @param wert true / false
     */
    private void enableFelder(boolean wert) {
        jtfEinsatznr.setEnabled(wert);
        jtfEinsatznr.setDisabledTextColor(color);
        jtfMeldender.setEnabled(wert);
        jtfMeldender.setDisabledTextColor(color);
        jtfErreichbarkeit.setEnabled(wert);
        jtfErreichbarkeit.setDisabledTextColor(color);
        jcbStichwort.setEnabled(wert);
        jtfBeginn.setEnabled(wert);
        jtfBeginn.setDisabledTextColor(color);
        jtfEnde.setEnabled(wert);
        jtfEnde.setDisabledTextColor(color);
        jtaGeschaedigter.setEnabled(wert);
        jtaGeschaedigter.setDisabledTextColor(color);
        jtfEinsatzort.setEnabled(wert);
        jtfEinsatzort.setDisabledTextColor(color);
        jtfEinsatzstr.setEnabled(wert);
        jtfEinsatzstr.setDisabledTextColor(color);
        jtfEinsatzplz.setEnabled(wert);
        jtfEinsatzplz.setDisabledTextColor(color);
        jtfGeborgen.setEnabled(wert);
        jtfGeborgen.setDisabledTextColor(color);
        jtfGerettet.setEnabled(wert);
        jtfGerettet.setDisabledTextColor(color);
        jtfHoehe.setEnabled(wert);
        jtfHoehe.setDisabledTextColor(color);
        jtfHoeheGerettet.setEnabled(wert);
        jtfHoeheGerettet.setDisabledTextColor(color);
        jtfEinsatzleiter.setEnabled(wert);
        jtfEinsatzleiter.setDisabledTextColor(color);
        jcbKostenpfltg.setEnabled(wert);
        jlKraefteFrei.setEnabled(wert);
        //jlKraefteEingesetzt.setEnabled(wert);     // JButton disablen, damit kann die JList noch angesteuert werden für AGT Auswahl
        jbAddEingesetzt.setEnabled(wert);
        jbDelEingesetzt.setEnabled(wert);
        jlKraefteBereit.setEnabled(wert);
        jlKraefteLeitend.setEnabled(wert);
        for (int j=0; j<STA_EINSATZART; j++) {
            jcbEinsatzart[j].setEnabled(wert);
        }
        for (int j=0; j<STA_ALARM; j++) {
            jcbAlarm[j].setEnabled(wert);
        }   
        for (int j=0; j<STA_FAHRZEUG; j++) {
            jcbFahrzeug[j].setEnabled(wert);
            jtfFahrzeugEin[j].setEnabled(wert);
            jtfFahrzeugEin[j].setDisabledTextColor(color);
            jtfFahrzeugAus[j].setEnabled(wert);
            jtfFahrzeugAus[j].setDisabledTextColor(color);
        }
        jtfAGT.setDisabledTextColor(color);
        jtfAGT.setEnabled(wert);
        jtaDetail.setEnabled(false);                                            // Wird nur durch Drücken auf "Neuer Detailsatz" aktiviert
        jtaDetail.setDisabledTextColor(color);
        jtaDetailAlle.setEnabled(false);                                      
        jtaDetailAlle.setDisabledTextColor(color);
    }
    
    /**
     * Die JTextFields mit Standardwerten (leer) versorgen.
     */
    private void initializeFelder() {
        jcbKostenpfltg.setSelected(false);
        jtaGeschaedigter.setText("");
        jtfBeginn.setText("");
        jtfEnde.setText("");
        jtfBeginn.setInputVerifier(checkZeiten);
        jtfEnde.setInputVerifier(checkZeiten);
        jtfEinsatznr.setText("");
        jtfMeldender.setText("");
        jtfErreichbarkeit.setText("");
        jtfEinsatzort.setText("");
        jtfEinsatzplz.setText("");
        jtfEinsatzstr.setText("");
        jtfGeborgen.setText("");
        jtfGerettet.setText("");
        jtfHoehe.setText("");
        jtfHoeheGerettet.setText("");
        jtfEinsatzleiter.setText("");
        jtaDetail.setText("");
        jtfAGT.setText("");
        jlPerson.setText("");
    }

    /**
     * Ein PlainDocument mit Prüfung auf maximale Länge zu den JText's hinzufügen.
     */
    private void limitJTextFields() {
        jtfEinsatznr.setDocument(new JTextFieldLimit(120));
        jtfMeldender.setDocument(new JTextFieldLimit(120));
        jtfErreichbarkeit.setDocument(new JTextFieldLimit(120));
        jtfEinsatzort.setDocument(new JTextFieldLimit(120));
        jtfEinsatzplz.setDocument(new JTextFieldLimit(120));
        jtfEinsatzstr.setDocument(new JTextFieldLimit(120));
        jtfEinsatzleiter.setDocument(new JTextFieldLimit(120));
        jtaDetail.setDocument(new JTextFieldLimit(1020));
        jtaDetail.getDocument().addDocumentListener(documentListener);
        jtaGeschaedigter.setDocument(new JTextFieldLimit(1020));
    }
    
    /**
     * Die Button je nach Datensatz aktiv/passiv setzen.
     */
    private void setJButton() {
        if (einsatz == null) {              // Hier der Fall das kein Einsatz gefunden wird.
            jbNew.setEnabled(true);
            jbChange.setEnabled(false);
            jbSave.setEnabled(false);
            jbDiscard.setEnabled(false);
            jbPrint.setEnabled(false);
            jbDetailNeu.setEnabled(false);
            jlBearbeitung.setText("Kein Einsatz ausgewählt!");
            return;
        }
        if (kz_bearbeitung.equals("J")) {
            jbNew.setEnabled(true);
            jbChange.setEnabled(false);
            jbSave.setEnabled(false);
            jbDiscard.setEnabled(false);
            jbPrint.setEnabled(true);
            jbDetailNeu.setEnabled(false);
            jlBearbeitung.setText("Datensatz gesperrt durch " + (bearbeiter==null?Feuerwehr.getBenutzer().toString():bearbeiter.toString()));
        } else {
            jbNew.setEnabled(true);
            jbChange.setEnabled(true);
            jbSave.setEnabled(false);
            jbDiscard.setEnabled(false);
            jbPrint.setEnabled(true);
            jbDetailNeu.setEnabled(false);
            jlBearbeitung.setText("");
        }
    }

    /**
     * Die JComboBox jcbStichwort mit gültigen Werten füllen.
     */
    private void initializeStichwort() {
        List <Stichwort> l = Stichwort.getStichworte();
        jcbStichwort.removeAllItems();
        for (Stichwort s : l) {
            jcbStichwort.addItem(s);
        }
    }

    /**
     * In der JComboBox das aktuelle Stichwort selektieren.
     */
    private void setStichwort() {
        if (einsatz.getStichwort()==null) {
            return;
        }
        for (int i=0; i<jcbStichwort.getItemCount(); i++) {
            if (((Stichwort)jcbStichwort.getItemAt(i)).getPK().equals(einsatz.getStichwort().getPK())) {
                jcbStichwort.setSelectedIndex(i);
                return;
            }
        }
    }

    /**
     * Das in der JComboBox selektierte Stichwort zurückgeben.
     */
    private Stichwort getStichwort() {
        return (Stichwort)jcbStichwort.getSelectedItem();
    }
    
    /**
     * Aktive Einsatzart setzen (setSelected() = true)
     */
    private void setEinsatzart() {
        ArrayList<Einsatzart> al = Einsatzart.getAktuelleEinsatzart(einsatzPK);
        for (Einsatzart a : al) {
            for (int i=0; i<STA_EINSATZART; i++) {
                if (true == jcbEinsatzart[i].getText().equals(a.toString())) {
                    jcbEinsatzart[i].setSelected(true);
                }
            }
        }
    }

    /**
     * Alle aktiven Einsatzarten in einen String für SQL setzen.
     * @return Aktive Einsatzarten
     */
    private String getEinsatzart() {
        String s = "";
        for (int i=0; i<STA_EINSATZART; i++) {
            if (true == jcbEinsatzart[i].isSelected()) {
                s = s + "'" + jcbEinsatzart[i].getText() + "',";
            }
        }
        if (s.length() != 0) {
            s = s.substring(0, s.length()-1);
        } else {
            s = "'-1'";
        }
        return s;
    }

    /**
     * Hiermit werden die JCheckBoxes der Einsatzart initialisiert, d.h. die nicht vorhandenen werden
     * ausgeblendet und für die anderen der Text gesetzt.
     */
    private void initializeEinsatzart() {
        jcbEinsatzart[0]=jcbEinsatzart1;
        jcbEinsatzart[1]=jcbEinsatzart2;
        jcbEinsatzart[2]=jcbEinsatzart3;
        jcbEinsatzart[3]=jcbEinsatzart4;
        jcbEinsatzart[4]=jcbEinsatzart5;
        jcbEinsatzart[5]=jcbEinsatzart6;
        for (int j=0; j<STA_EINSATZART; j++) {
            jcbEinsatzart[j].setVisible(false);
            jcbEinsatzart[j].setText("");
            jcbEinsatzart[j].setSelected(false);
        }
        ArrayList<Einsatzart> al = Einsatzart.getEinsatzart();
        int i=0;
        for (Einsatzart a : al) {
            jcbEinsatzart[i].setVisible(true);
            jcbEinsatzart[i++].setText(a.toString());
        }        
    }

    /**
     * Aktive Alarmierungen setzen (setSelected() = true)
     */
    private void setAlarmierung() {
        ArrayList<Alarmierung> al = Alarmierung.getAktuelleAlarmierung(einsatzPK);
        for (Alarmierung a : al) {
            for (int i=0; i<STA_ALARM; i++) {
                if (true == jcbAlarm[i].getText().equals(a.toString())) {
                    jcbAlarm[i].setSelected(true);
                }
            }
        }
    }
    
    /**
     * Alle aktiven Alarmierungen in einen String für SQL setzen.
     * @return Aktive Alarmierungen
     */
    private String getAlarmierung() {
        String s = "";
        for (int i=0; i<STA_ALARM; i++) {
            if (true == jcbAlarm[i].isSelected()) {
                s = s + "'" + jcbAlarm[i].getText() + "',";
            }
        }
        if (s.length() != 0) {
            s = s.substring(0, s.length()-1);
        } else {
            s = "'-1'";
        }
        return s;
    }
    
    /**
     * Hiermit werden die JCheckBoxes der Alarmierung initialisiert, d.h. die nicht vorhandenen werden
     * ausgeblendet und für die anderen der Text gesetzt.
     */
    private void initializeAlarmierung() {
        jcbAlarm[0]=jcbAlarm1;
        jcbAlarm[1]=jcbAlarm2;
        jcbAlarm[2]=jcbAlarm3;
        jcbAlarm[3]=jcbAlarm4;
        jcbAlarm[4]=jcbAlarm5;
        jcbAlarm[5]=jcbAlarm6;
        for (int j=0; j<STA_ALARM; j++) {
            jcbAlarm[j].setVisible(false);
            jcbAlarm[j].setText("");
            jcbAlarm[j].setSelected(false);
        }
        ArrayList<Alarmierung> al = Alarmierung.getAlarmierung();
        int i=0;
        for (Alarmierung a : al) {
            jcbAlarm[i].setVisible(true);
            jcbAlarm[i++].setText(a.toString());
        }        
    }
    
    /**
     * Aktive Fahrzeuge setzen (setSelected() = true)
     */
    private void setFahrzeug() {
        ArrayList<Fahrzeug> al = Fahrzeug.getAktuelleFahrzeug(einsatzPK);
        for (Fahrzeug a : al) {
            for (int i=0; i<STA_FAHRZEUG; i++) {
                if (true == jcbFahrzeug[i].getText().equals(a.toString())) {
                    jcbFahrzeug[i].setSelected(true);
                    jtfFahrzeugAus[i].setText(a.getAusrueckzeit());
                    jtfFahrzeugEin[i].setText(a.getEinrueckzeit());
                }
            }
        }
    }
 
    /**
     * Hiermit werden die JCheckBoxes/JTextFields der Fahrzeuge initialisiert, d.h. die nicht vorhandenen werden
     * ausgeblendet und für die anderen der Text gesetzt.
     */
    private void initializeFahrzeug() {
        jcbFahrzeug[0]=jcbFahrzeug1;
        jcbFahrzeug[1]=jcbFahrzeug2;
        jcbFahrzeug[2]=jcbFahrzeug3;
        jcbFahrzeug[3]=jcbFahrzeug4;
        jcbFahrzeug[4]=jcbFahrzeug5;
        jcbFahrzeug[5]=jcbFahrzeug6;
        jcbFahrzeug[6]=jcbFahrzeug7;
        jcbFahrzeug[7]=jcbFahrzeug8;
        jcbFahrzeug[8]=jcbFahrzeug9;
        jcbFahrzeug[9]=jcbFahrzeug10;
        jcbFahrzeug[10]=jcbFahrzeug11;
        jcbFahrzeug[11]=jcbFahrzeug12;
        jcbFahrzeug[12]=jcbFahrzeug13;
        jcbFahrzeug[13]=jcbFahrzeug14;
        jcbFahrzeug[14]=jcbFahrzeug15;
        jcbFahrzeug[15]=jcbFahrzeug16;
        jcbFahrzeug[16]=jcbFahrzeug17;
        jcbFahrzeug[17]=jcbFahrzeug18;
        jcbFahrzeug[18]=jcbFahrzeug19;
        jcbFahrzeug[19]=jcbFahrzeug20;
        jcbFahrzeug[20]=jcbFahrzeug21;
        jcbFahrzeug[21]=jcbFahrzeug22;
        jcbFahrzeug[22]=jcbFahrzeug23;
        jcbFahrzeug[23]=jcbFahrzeug24;
        jcbFahrzeug[24]=jcbFahrzeug25;
        jcbFahrzeug[25]=jcbFahrzeug26;
        jcbFahrzeug[26]=jcbFahrzeug27;
        jcbFahrzeug[27]=jcbFahrzeug28;
        jcbFahrzeug[28]=jcbFahrzeug29;
        jcbFahrzeug[29]=jcbFahrzeug30;
        jcbFahrzeug[30]=jcbFahrzeug31;
        jcbFahrzeug[31]=jcbFahrzeug32;
        jcbFahrzeug[32]=jcbFahrzeug33;

        jtfFahrzeugEin[0]=jtfFahrzeugEin1;
        jtfFahrzeugEin[1]=jtfFahrzeugEin2;
        jtfFahrzeugEin[2]=jtfFahrzeugEin3;
        jtfFahrzeugEin[3]=jtfFahrzeugEin4;
        jtfFahrzeugEin[4]=jtfFahrzeugEin5;
        jtfFahrzeugEin[5]=jtfFahrzeugEin6;
        jtfFahrzeugEin[6]=jtfFahrzeugEin7;
        jtfFahrzeugEin[7]=jtfFahrzeugEin8;
        jtfFahrzeugEin[8]=jtfFahrzeugEin9;
        jtfFahrzeugEin[9]=jtfFahrzeugEin10;
        jtfFahrzeugEin[10]=jtfFahrzeugEin11;
        jtfFahrzeugEin[11]=jtfFahrzeugEin12;
        jtfFahrzeugEin[12]=jtfFahrzeugEin13;
        jtfFahrzeugEin[13]=jtfFahrzeugEin14;
        jtfFahrzeugEin[14]=jtfFahrzeugEin15;
        jtfFahrzeugEin[15]=jtfFahrzeugEin16;
        jtfFahrzeugEin[16]=jtfFahrzeugEin17;
        jtfFahrzeugEin[17]=jtfFahrzeugEin18;
        jtfFahrzeugEin[18]=jtfFahrzeugEin19;
        jtfFahrzeugEin[19]=jtfFahrzeugEin20;
        jtfFahrzeugEin[20]=jtfFahrzeugEin21;
        jtfFahrzeugEin[21]=jtfFahrzeugEin22;
        jtfFahrzeugEin[22]=jtfFahrzeugEin23;
        jtfFahrzeugEin[23]=jtfFahrzeugEin24;
        jtfFahrzeugEin[24]=jtfFahrzeugEin25;
        jtfFahrzeugEin[25]=jtfFahrzeugEin26;
        jtfFahrzeugEin[26]=jtfFahrzeugEin27;
        jtfFahrzeugEin[27]=jtfFahrzeugEin28;
        jtfFahrzeugEin[28]=jtfFahrzeugEin29;
        jtfFahrzeugEin[29]=jtfFahrzeugEin30;
        jtfFahrzeugEin[30]=jtfFahrzeugEin31;
        jtfFahrzeugEin[31]=jtfFahrzeugEin32;
        jtfFahrzeugEin[32]=jtfFahrzeugEin33;
        
        jtfFahrzeugAus[0]=jtfFahrzeugAus1;
        jtfFahrzeugAus[1]=jtfFahrzeugAus2;
        jtfFahrzeugAus[2]=jtfFahrzeugAus3;
        jtfFahrzeugAus[3]=jtfFahrzeugAus4;
        jtfFahrzeugAus[4]=jtfFahrzeugAus5;
        jtfFahrzeugAus[5]=jtfFahrzeugAus6;
        jtfFahrzeugAus[6]=jtfFahrzeugAus7;
        jtfFahrzeugAus[7]=jtfFahrzeugAus8;
        jtfFahrzeugAus[8]=jtfFahrzeugAus9;
        jtfFahrzeugAus[9]=jtfFahrzeugAus10;
        jtfFahrzeugAus[10]=jtfFahrzeugAus11;
        jtfFahrzeugAus[11]=jtfFahrzeugAus12;
        jtfFahrzeugAus[12]=jtfFahrzeugAus13;
        jtfFahrzeugAus[13]=jtfFahrzeugAus14;
        jtfFahrzeugAus[14]=jtfFahrzeugAus15;
        jtfFahrzeugAus[15]=jtfFahrzeugAus16;
        jtfFahrzeugAus[16]=jtfFahrzeugAus17;
        jtfFahrzeugAus[17]=jtfFahrzeugAus18;
        jtfFahrzeugAus[18]=jtfFahrzeugAus19;
        jtfFahrzeugAus[19]=jtfFahrzeugAus20;
        jtfFahrzeugAus[20]=jtfFahrzeugAus21;
        jtfFahrzeugAus[21]=jtfFahrzeugAus22;
        jtfFahrzeugAus[22]=jtfFahrzeugAus23;
        jtfFahrzeugAus[23]=jtfFahrzeugAus24;
        jtfFahrzeugAus[24]=jtfFahrzeugAus25;
        jtfFahrzeugAus[25]=jtfFahrzeugAus26;
        jtfFahrzeugAus[26]=jtfFahrzeugAus27;
        jtfFahrzeugAus[27]=jtfFahrzeugAus28;
        jtfFahrzeugAus[28]=jtfFahrzeugAus29;
        jtfFahrzeugAus[29]=jtfFahrzeugAus30;
        jtfFahrzeugAus[30]=jtfFahrzeugAus31;
        jtfFahrzeugAus[31]=jtfFahrzeugAus32;
        jtfFahrzeugAus[32]=jtfFahrzeugAus33;

        for (int j=0; j<STA_FAHRZEUG; j++) {
            jcbFahrzeug[j].addActionListener(actionListenerFahrzeug);
            jcbFahrzeug[j].setInputVerifier(checkAusEinrueckzeiten);
            jtfFahrzeugEin[j].setInputVerifier(checkAusEinrueckzeiten);
            jtfFahrzeugAus[j].setInputVerifier(checkAusEinrueckzeiten);
            jcbFahrzeug[j].setVisible(false);
            jtfFahrzeugEin[j].setVisible(false);
            jtfFahrzeugAus[j].setVisible(false);
            jcbFahrzeug[j].setText("");
            jtfFahrzeugEin[j].setText("");
            jtfFahrzeugAus[j].setText("");
            jcbFahrzeug[j].setSelected(false);
        }
        ArrayList<Fahrzeug> al = Fahrzeug.getFahrzeug();
        int i=0;
        for (Fahrzeug f : al) {
            jcbFahrzeug[i].setName(f.getPK());
            jtfFahrzeugEin[i].setName(f.getPK());
            jtfFahrzeugAus[i].setName(f.getPK());
            jcbFahrzeug[i].setVisible(true);
            jcbFahrzeug[i].setText(f.toString());
            jtfFahrzeugEin[i].setVisible(true);
            jtfFahrzeugEin[i].setText("");
            jtfFahrzeugAus[i].setVisible(true);
            jtfFahrzeugAus[i++].setText("");
        }        
    }
    
    /**
     * Finde die Indexnummer einer übergebenen JComponent mit Fahrzeugdaten.
     * @param jc Eine Fahrzeug JComponent
     * @return Die passende Indexnummer oder -1
     */
    private int getIndexFromJComponentName(javax.swing.JComponent jc) {
        if (jc instanceof javax.swing.JTextField) {
            javax.swing.JTextField jtf = (javax.swing.JTextField)jc;
             for (int j=0; j<STA_FAHRZEUG; j++) {
                 if (jtf.getText().equals(jtfFahrzeugEin[j].getText())) {
                     return j;
                 }
                 if (jtf.getText().equals(jtfFahrzeugAus[j].getText())) {
                     return j;
                 }
             }
        }
        if (jc instanceof javax.swing.JCheckBox) {
            javax.swing.JCheckBox jcb = (javax.swing.JCheckBox)jc;
            for (int j=0; j<STA_FAHRZEUG; j++) {
                if (jcb.getText().equals(jcbFahrzeug[j].getText())) {
                    return j;
                }
            }
        }
        return -1;
    }
    
    /**
     * ActionListener für JCheckBoxes, damit bei Änderung der Feuerwehrcheckbox das Feld Einrückzeit gesetzt/gelöscht wird.
     */
    ActionListener actionListenerFahrzeug = new ActionListener() {
        long zeit = -1;

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            AbstractButton abstractButton = (AbstractButton)actionEvent.getSource();
            if (zeit == actionEvent.getWhen())
                return;
            else
                zeit = actionEvent.getWhen();
            int i = getIndexFromJComponentName((javax.swing.JCheckBox)abstractButton);
            if (abstractButton.getModel().isSelected() == true) {
                if (Fahrzeug.pruefeVerfuegbarkeitFahrzeug(einsatzPK, jcbFahrzeug[i].getName(), Einsatz.getSQLDateFromString(jtfBeginn.getText(), "dd.MM.yyyy HH:mm:ss"), null) == false) {
                    jcbFahrzeug[i].setSelected(false);
                    return;
                }
                jtfFahrzeugAus[i].setText(jtfBeginn.getText());
            } else {
                jtfFahrzeugAus[i].setText("");
                jtfFahrzeugEin[i].setText("");
            }
        }
    };
    
    /**
     * ListSelectionListener für die eingesetzten Kräfte.
     */
    ListSelectionListener listenerKraefteEingesetzt = new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent ev) {
            Person p = (Person) jlKraefteEingesetzt.getSelectedValue();
            if (p == null) {
                return;
            }
            jlPerson.setText(p.getName());
            jtfAGT.setText(p.getAGT());
        } 
    };

    /**
     * DocumentListener um Änderungen an den Details mitzubekommen.
     */
    DocumentListener documentListener = new DocumentListener() {
        @Override
        public void removeUpdate(DocumentEvent de) {
            updateDetailFeld();
        }
        @Override
        public void insertUpdate(DocumentEvent de) {
            updateDetailFeld();
        }
        @Override
        public void changedUpdate(DocumentEvent de) {
            updateDetailFeld();
        }
    };    
    
    /**
     * Ein InputVerifier für die Start und Endezeiten
     */
    InputVerifier checkZeiten = new InputVerifier() {
        @Override
        public boolean verify(javax.swing.JComponent input) {
            return true;
        }
        
        @Override
        public boolean shouldYieldFocus(javax.swing.JComponent input) {
            javax.swing.JTextField jTF = (javax.swing.JTextField)input;
            String sInput = jTF.getText();
            if (sInput.equals("") == true) {                                              // Leere Eingabe ist erlaubt
                return true;
            }
            if (Einsatz.getSQLDateFromString(sInput, "dd.MM.yyyy HH:mm:ss") == null) {
                return false;
            }
            return true;
        }
    };
    
     /**
     * Ein InputVerifier für die Aus- und Einrückzeiten der Feuerwehr.
     * Erstens muss ein gültiges Datum vorliegen und zweitens dürfen diese sich nicht mit anderen überlappen.
     */
    InputVerifier checkAusEinrueckzeiten = new InputVerifier() {
        @Override
        public boolean verify(javax.swing.JComponent input) {
            return true;
        }
        
        @Override
        public boolean shouldYieldFocus(javax.swing.JComponent input) {
            if (input instanceof javax.swing.JTextField) {
                String sInput = ((javax.swing.JTextField)input).getText();
                if (Einsatz.getSQLDateFromString(sInput, "dd.MM.yyyy HH:mm:ss") == null) {    // Kein gültiges Datum
                    input.setForeground(java.awt.Color.RED);
                    return false;
                }
                if (sInput.equals("") == true) {                                              // Leere Eingabe ist erlaubt
                    return true;
                }
            }
            if (verify(input)) {
                int i = getIndexFromJComponentName(input);
                String ausrueckzeit = jtfFahrzeugAus[i].getText();
                String einrueckzeit = jtfFahrzeugEin[i].getText();

                System.err.println("Ausrückzeit: " + ausrueckzeit + " Einrückzeit: " + einrueckzeit);

                boolean b = Fahrzeug.pruefeVerfuegbarkeitFahrzeug(einsatzPK, jcbFahrzeug[i].getName(),
                                                                  Einsatz.getSQLDateFromString(ausrueckzeit, "dd.MM.yyyy HH:mm:ss"),
                                                                  Einsatz.getSQLDateFromString(einrueckzeit, "dd.MM.yyyy HH:mm:ss"));
                if (b == true) {
                    input.setForeground(java.awt.Color.BLACK);
                    return true;
                } else {
                    input.setForeground(java.awt.Color.RED);
                    return false;
                }
            } else {
                input.setForeground(java.awt.Color.RED);
                return false;
            }
        }
    };
    
    
    private final javax.swing.JCheckBox[] jcbAlarm = new javax.swing.JCheckBox[7];             // Unser Aarray für Alarmierung CheckBoxes
    private final javax.swing.JCheckBox[] jcbEinsatzart = new javax.swing.JCheckBox[7];        // Unser Aarray für Einsatzart CheckBoxes
    private final javax.swing.JCheckBox[] jcbFahrzeug = new javax.swing.JCheckBox[35];         // Unser Array für Fahrzeug CheckBoxes
    private final javax.swing.JTextField[] jtfFahrzeugEin = new javax.swing.JTextField[35];    // Unser Array für Fahrzeug (Einrück) TextFields
    private final javax.swing.JTextField[] jtfFahrzeugAus = new javax.swing.JTextField[35];    // Unser Array für Fahrzeug (Ausrück) TextFields
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabelA;
    private javax.swing.JLabel jLabelB;
    private javax.swing.JLabel jLabelC;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JTabbedPane jTabPanel;
    private javax.swing.JButton jbAddBereitgestellt;
    private javax.swing.JButton jbAddEingesetzt;
    private javax.swing.JButton jbAddLeitend;
    private javax.swing.JButton jbChange;
    private javax.swing.JButton jbDelBereitgestellt;
    private javax.swing.JButton jbDelEingesetzt;
    private javax.swing.JButton jbDelLeitend;
    private javax.swing.JButton jbDetailNeu;
    private javax.swing.JButton jbDiscard;
    private javax.swing.JButton jbNew;
    private javax.swing.JButton jbOverride;
    private javax.swing.JButton jbPrint;
    private javax.swing.JButton jbSave;
    private javax.swing.JCheckBox jcbAlarm1;
    private javax.swing.JCheckBox jcbAlarm2;
    private javax.swing.JCheckBox jcbAlarm3;
    private javax.swing.JCheckBox jcbAlarm4;
    private javax.swing.JCheckBox jcbAlarm5;
    private javax.swing.JCheckBox jcbAlarm6;
    private javax.swing.JCheckBox jcbEinsatzart1;
    private javax.swing.JCheckBox jcbEinsatzart2;
    private javax.swing.JCheckBox jcbEinsatzart3;
    private javax.swing.JCheckBox jcbEinsatzart4;
    private javax.swing.JCheckBox jcbEinsatzart5;
    private javax.swing.JCheckBox jcbEinsatzart6;
    private javax.swing.JCheckBox jcbFahrzeug1;
    private javax.swing.JCheckBox jcbFahrzeug10;
    private javax.swing.JCheckBox jcbFahrzeug11;
    private javax.swing.JCheckBox jcbFahrzeug12;
    private javax.swing.JCheckBox jcbFahrzeug13;
    private javax.swing.JCheckBox jcbFahrzeug14;
    private javax.swing.JCheckBox jcbFahrzeug15;
    private javax.swing.JCheckBox jcbFahrzeug16;
    private javax.swing.JCheckBox jcbFahrzeug17;
    private javax.swing.JCheckBox jcbFahrzeug18;
    private javax.swing.JCheckBox jcbFahrzeug19;
    private javax.swing.JCheckBox jcbFahrzeug2;
    private javax.swing.JCheckBox jcbFahrzeug20;
    private javax.swing.JCheckBox jcbFahrzeug21;
    private javax.swing.JCheckBox jcbFahrzeug22;
    private javax.swing.JCheckBox jcbFahrzeug23;
    private javax.swing.JCheckBox jcbFahrzeug24;
    private javax.swing.JCheckBox jcbFahrzeug25;
    private javax.swing.JCheckBox jcbFahrzeug26;
    private javax.swing.JCheckBox jcbFahrzeug27;
    private javax.swing.JCheckBox jcbFahrzeug28;
    private javax.swing.JCheckBox jcbFahrzeug29;
    private javax.swing.JCheckBox jcbFahrzeug3;
    private javax.swing.JCheckBox jcbFahrzeug30;
    private javax.swing.JCheckBox jcbFahrzeug31;
    private javax.swing.JCheckBox jcbFahrzeug32;
    private javax.swing.JCheckBox jcbFahrzeug33;
    private javax.swing.JCheckBox jcbFahrzeug4;
    private javax.swing.JCheckBox jcbFahrzeug5;
    private javax.swing.JCheckBox jcbFahrzeug6;
    private javax.swing.JCheckBox jcbFahrzeug7;
    private javax.swing.JCheckBox jcbFahrzeug8;
    private javax.swing.JCheckBox jcbFahrzeug9;
    private javax.swing.JCheckBox jcbKostenpfltg;
    private javax.swing.JComboBox jcbStichwort;
    private javax.swing.JEditorPane jedKarteHTML;
    private javax.swing.JLabel jlBearbeiter;
    private javax.swing.JLabel jlBearbeitung;
    private javax.swing.JLabel jlKarte;
    private javax.swing.JList jlKraefteBereit;
    private javax.swing.JList jlKraefteEingesetzt;
    private javax.swing.JList jlKraefteFrei;
    private javax.swing.JList jlKraefteLeitend;
    private javax.swing.JLabel jlPerson;
    private javax.swing.JPanel jpAlarmierung;
    private javax.swing.JPanel jpAllgemein;
    private javax.swing.JPanel jpButtons;
    private javax.swing.JPanel jpDetail;
    private javax.swing.JPanel jpEinsatzart;
    private javax.swing.JPanel jpFahrzeuge;
    private javax.swing.JPanel jpKarte;
    private javax.swing.JPanel jpKarteHTML;
    private javax.swing.JPanel jpKosten;
    private javax.swing.JScrollPane jspFahrzeuge;
    private javax.swing.JTextArea jtaDetail;
    private javax.swing.JTextArea jtaDetailAlle;
    private javax.swing.JTextArea jtaGeschaedigter;
    private javax.swing.JTextField jtfAGT;
    private javax.swing.JTextField jtfBeginn;
    private javax.swing.JTextField jtfEinsatzleiter;
    private javax.swing.JTextField jtfEinsatznr;
    private javax.swing.JTextField jtfEinsatzort;
    private javax.swing.JTextField jtfEinsatzplz;
    private javax.swing.JTextField jtfEinsatzstr;
    private javax.swing.JTextField jtfEnde;
    private javax.swing.JTextField jtfErreichbarkeit;
    private javax.swing.JTextField jtfFahrzeugAus1;
    private javax.swing.JTextField jtfFahrzeugAus10;
    private javax.swing.JTextField jtfFahrzeugAus11;
    private javax.swing.JTextField jtfFahrzeugAus12;
    private javax.swing.JTextField jtfFahrzeugAus13;
    private javax.swing.JTextField jtfFahrzeugAus14;
    private javax.swing.JTextField jtfFahrzeugAus15;
    private javax.swing.JTextField jtfFahrzeugAus16;
    private javax.swing.JTextField jtfFahrzeugAus17;
    private javax.swing.JTextField jtfFahrzeugAus18;
    private javax.swing.JTextField jtfFahrzeugAus19;
    private javax.swing.JTextField jtfFahrzeugAus2;
    private javax.swing.JTextField jtfFahrzeugAus20;
    private javax.swing.JTextField jtfFahrzeugAus21;
    private javax.swing.JTextField jtfFahrzeugAus22;
    private javax.swing.JTextField jtfFahrzeugAus23;
    private javax.swing.JTextField jtfFahrzeugAus24;
    private javax.swing.JTextField jtfFahrzeugAus25;
    private javax.swing.JTextField jtfFahrzeugAus26;
    private javax.swing.JTextField jtfFahrzeugAus27;
    private javax.swing.JTextField jtfFahrzeugAus28;
    private javax.swing.JTextField jtfFahrzeugAus29;
    private javax.swing.JTextField jtfFahrzeugAus3;
    private javax.swing.JTextField jtfFahrzeugAus30;
    private javax.swing.JTextField jtfFahrzeugAus31;
    private javax.swing.JTextField jtfFahrzeugAus32;
    private javax.swing.JTextField jtfFahrzeugAus33;
    private javax.swing.JTextField jtfFahrzeugAus4;
    private javax.swing.JTextField jtfFahrzeugAus5;
    private javax.swing.JTextField jtfFahrzeugAus6;
    private javax.swing.JTextField jtfFahrzeugAus7;
    private javax.swing.JTextField jtfFahrzeugAus8;
    private javax.swing.JTextField jtfFahrzeugAus9;
    private javax.swing.JTextField jtfFahrzeugEin1;
    private javax.swing.JTextField jtfFahrzeugEin10;
    private javax.swing.JTextField jtfFahrzeugEin11;
    private javax.swing.JTextField jtfFahrzeugEin12;
    private javax.swing.JTextField jtfFahrzeugEin13;
    private javax.swing.JTextField jtfFahrzeugEin14;
    private javax.swing.JTextField jtfFahrzeugEin15;
    private javax.swing.JTextField jtfFahrzeugEin16;
    private javax.swing.JTextField jtfFahrzeugEin17;
    private javax.swing.JTextField jtfFahrzeugEin18;
    private javax.swing.JTextField jtfFahrzeugEin19;
    private javax.swing.JTextField jtfFahrzeugEin2;
    private javax.swing.JTextField jtfFahrzeugEin20;
    private javax.swing.JTextField jtfFahrzeugEin21;
    private javax.swing.JTextField jtfFahrzeugEin22;
    private javax.swing.JTextField jtfFahrzeugEin23;
    private javax.swing.JTextField jtfFahrzeugEin24;
    private javax.swing.JTextField jtfFahrzeugEin25;
    private javax.swing.JTextField jtfFahrzeugEin26;
    private javax.swing.JTextField jtfFahrzeugEin27;
    private javax.swing.JTextField jtfFahrzeugEin28;
    private javax.swing.JTextField jtfFahrzeugEin29;
    private javax.swing.JTextField jtfFahrzeugEin3;
    private javax.swing.JTextField jtfFahrzeugEin30;
    private javax.swing.JTextField jtfFahrzeugEin31;
    private javax.swing.JTextField jtfFahrzeugEin32;
    private javax.swing.JTextField jtfFahrzeugEin33;
    private javax.swing.JTextField jtfFahrzeugEin4;
    private javax.swing.JTextField jtfFahrzeugEin5;
    private javax.swing.JTextField jtfFahrzeugEin6;
    private javax.swing.JTextField jtfFahrzeugEin7;
    private javax.swing.JTextField jtfFahrzeugEin8;
    private javax.swing.JTextField jtfFahrzeugEin9;
    private javax.swing.JTextField jtfGeborgen;
    private javax.swing.JTextField jtfGerettet;
    private javax.swing.JTextField jtfHoehe;
    private javax.swing.JTextField jtfHoeheGerettet;
    private javax.swing.JTextArea jtfMeldender;
    private javax.swing.JPanel jtpAlarmierung;
    private javax.swing.JPanel jtpAllgemein;
    private javax.swing.JPanel jtpFahrzeuge;
    private javax.swing.JPanel jtpKraefte;
    // End of variables declaration//GEN-END:variables

    private Detail detail;
    private String kz_bearbeitung;
    private Person bearbeiter;
    private Einsatz einsatz = null;
    private int einsatzPK = -1;
    private boolean bEinsatzIstNeu = false;
    private EinsatzTabelle einsatzTabelle;
    private final static int STA_ALARM = 6;
    private final static int STA_EINSATZART = 6;
    public final static int STA_FAHRZEUG = 33;    
    private final static Color color = new Color(70, 70, 70); //Color.BLACK;
}




       /*
       Person p = (Person) jlistDel.getSelectedValue();
       if (p == null) {
           return;
       }
       DefaultListModel dlm = (DefaultListModel) jlistAdd.getModel();
       dlm.addElement(p);
       dlm = (DefaultListModel) jlistDel.getModel();
       int index = jlistDel.getSelectedIndex();
       dlm.remove(index);


JTextField field1 = new JTextField();
JTextField field2 = new JTextField();
JTextField field3 = new JTextField();
JTextField field4 = new JTextField();
JTextField field5 = new JTextField();
Object[] message = {
    "Input value 1:", field1,
    "Input value 2:", field2,
    "Input value 3:", field3,
    "Input value 4:", field4,
    "Input value 5:", field5,
};
int option = JOptionPane.showConfirmDialog(parent, message, "Enter all your values", JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION)
{
    String value1 = field1.getText();
    String value2 = field2.getText();
    String value3 = field3.getText();
    String value4 = field4.getText();
    String value5 = field5.getText();
}

       innodb_lock_wait_timeout
       */